Host processor systems may store and retrieve data (or datasets) using storage devices containing a plurality of host interface units (host adapters), disk drives, and disk interface units (disk adapters). Such storage devices are provided, for example, by EMC Corporation of Hopkinton, Mass. and disclosed in U.S. Pat. No. 5,206,939 to Yanai et al., U.S. Pat. No. 5,778,394 to Galtzur et al., U.S. Pat. No. 5,845,147 to Vishlitzky et al., and U.S. Pat. No. 5,857,208 to Ofek, which are incorporated herein by reference. The host systems access the storage device through a plurality of channels provided therewith. Host systems provide data and access control information through the channels of the storage device and the storage device provides data to the host systems also through the channels. The host systems do not address the disk drives of the storage device directly, but rather, access what appears to the host systems as a plurality of logical volumes. Different sections of the logical volumes may or may not correspond to the actual disk drives.
Virtual provisioning (also referred to as thin provisioning) storage systems present a large amount of storage capacity to a host, but consume physical storage space only as needed from a shared pool. The devices of virtual provisioning may be known as thin devices or thin LUNs. With thin devices, the host visible capacity (e.g., storage perceived by the applications) is larger than the actual allocated space on the storage system. This simplifies the creation and allocation of storage capacity. Thin devices may be sized to accommodate growth without regard for currently available assets. Physical storage may be assigned to the server in a capacity-on-demand fashion from a shared pool.
Thin devices may be expanded as a file system runs, but may storage space may not be easily returned to the shared pool when no longer needed. Once allocated, in some cases, storage spaces may not be later recycled even if they are freed by the file system. A Symmetrix storage system product by EMC Corporation of Hopkinton, Mass. may be able to dynamically assigned tracks from a free track pool for thin device usage, but may not be able to detect when the track usage is no longer necessary and return the tracks to the free track pool. Known systems and techniques for space reclamation, such as the products by EMC Corporation, may include checking all the storage chunks allocated for a specified thin device and unmapping or otherwise freeing the allocated, but unneeded, storage chunks only if the storage chunks contain all zeroes. Space reclamation does not occur if any byte of a storage chunk is other than zero. Utilities, such as SDelete from Microsoft Corporation of Redmond, Wash., may be used to fill unused spaces of a volume with zeroes; however, such utilities may generate a large number of write I/Os that may have a disadvantageous impact on the system and other applications.
In particular, for Count Key Data (CKD) devices, there is no simple method available to return track space to a thin storage pool when no longer needed. CKD is a disk data architecture. In a CKD device, each physical disk record may include a count field, a key field (optional), and a user data field with error correction/detection information appended to each field. Because data records can be variable in length, in CKD, the count field indicates the user data record size. The key field enables a hardware search on a key. The commands used in the CKD architecture for managing the data and the storage devices are called channel command words. Reclaiming storage space that is no longer needed for a CKD device may not be easily accomplished with known techniques and systems. For example, when a dataset is initially allocated for a CKD device, an operating system, such as zOS by IBM Corporation, may assign track extents to the dataset. As writes occur to the dataset, the storage system, such as Symmetrix, may ensure that tracks are assigned on the back end. When the dataset is no longer needed, the zOS dataset is scratched, releasing the assigned extents. However, with known systems, there may be no notification to the storage system that the track extents being released may now be returned to the thin storage pool.
Accordingly, it would be desirable to provide a system that provides for efficient reclaiming of unused storage space in virtual (or thin) provisioning storage systems, and in particular, a storage system using CKD devices.